package com.quark.model.system.menu;

import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;

import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.*;

/**
 * sys_menu
 * @author
 */
@ApiModel(value="com.quark.model.system.menu.SysMenu")
@Data
public class SysMenu implements Serializable {
    /**
     * 主键
     */
    @ApiModelProperty(value="主键")
    private Integer id;

    /**
     * 菜单名称
     */
    @NotBlank(message = "菜单名称不能为空！")
    @ApiModelProperty(value = "菜单名称")
    private String title;

    /**
     * 路径地址
     */
    @ApiModelProperty(value = "路径地址")
    private String path;

    /**
     * 路径名称
     */
    @ApiModelProperty(value="路径名称")
    private String name;

    /**
     * 菜单图标
     */
    @ApiModelProperty(value="菜单图标")
    private String icon;

    /**
     * 父类id
     */
    @ApiModelProperty(value="父类id")
    @NotNull(message = "父类id不能为空！")
    private Integer parentId;

    /**
     * 是否显示0显示1不显示
     */
    @ApiModelProperty(value="是否显示0显示1不显示")
    private Integer hidden;

    /**
     * 排序
     */
    @NotNull(message = "排序不能为空")
    @ApiModelProperty(value = "排序")
    private Integer sort;

    /**
     * 组件
     */
    @ApiModelProperty(value="组件")
    private String component;

    /**
     * 类型1目录2菜单
     */
    @ApiModelProperty(value="类型1目录2菜单")
    @NotBlank(message = "类型不能为空！")
    @Length(min = 1, max = 2)
    private String type;

    /**
     * 创建时间
     */
    @ApiModelProperty(value="创建时间")
    private Date createTime;

    /**
     * 创建人
     */
    @ApiModelProperty(value="创建人")
    private String createUser;

    /**
     * 修改时间
     */
    @ApiModelProperty(value="修改时间")
    private Date updateTime;

    /**
     * 修改人
     */
    @ApiModelProperty(value="修改人")
    private String updateUser;

    @ApiModelProperty("数据库不存在这个字段,给前端用的")
    @TableField(exist = false)
    private int hasChildren;

    private static final long serialVersionUID = 1L;
}
